Програмирање за крајњег корисника
Крајње-корисничко развијање (ККР) или крајње-корисничко програмирање (ККП) односи се на активности и алате који омогућавају крајњим корисницима - људима који нису професионални програмери - за програмирање рачунара. Људи који нису професионални програмери могу да користе алате ККР да креирају и мењају софтвер артефаката (описи аутоматизованог понашање) и сложене предмете података без значајног знања програмског језика. Различити приступи постоји, а то је активна истраживачка тема у области рачунарства и интеракција човек-рачунар. Примери укључују табеле, скрипте језика (посебно у канцеларији, апартману или уметничким апликацијама), а програмирање кроз примере.
Најпопуларнији ККР алат је табела.[1] [2] Због своје неограничене природе, табеле омогућавају релативно УН-софистициранијим корисницима рачунара да пишу програме који представљају сложене моделе података, док их штите од потребе да уче програмске језике на нижем нивоу.[3] Због њиховог заједничког коришћења у пословању, вештине табеле су међу корисним вештинама које дипломирани запослени имају, и због тога их најчешће траже[4] Сједињене Америчке Државе, тамо има око 13 милиона крајње корисничких програмера са табелама.[5]
Рани покушаји у крајњем корисничком развијању су фокусирани на додавање једноставног скрипт програмског језика да се прошири и прилагоди постојеће апликације, као што је послован пакет.
Много недавних истраживања покушава да доведе програмирање ближе потребама крајњих корисника. Програмирање кроз примере (ПкП) приступ смањује потребу да корисници науче апстракције од класичног програмског језика. Корисник уводи неке примере жељених резултата или операција које треба да се врши на подацима, а ПкП систем закључује исправне апстракције које одговарају програму који производи овај излаз. Нови подаци могу затим бити представљени на аутоматски креирани програм, а корисник може да исправи грешке које је програм направи у циљу побољшања дефиниције.
Постоје два основна разлога зашто је ККР постала популарна. Један је јер се организације суочавају са кашњењем на пројектима, а коришћење ККР-а може ефикасно смањити време завршетка пројекта. Други разлог је што су софтверски алати моћнији и лакши за коришћење.
Научне лекције из делегације ККР-а решења могу значајно утицати на софтверске животне циклусе за комерцијалне софтверске производе, кућна интранет/ектранет дешавања и примене апликација предузећа.
Дефиниција
[уреди | уреди извор]Лиеберман et al. предлаже следећу дефиницију:[6]
Крајњи корисник развој може се дефинисати као скуп метода, техника и алата који омогућавају корисницима софтверских система, који се понашају као не-професионални програмери, у неком тренутку да створе, измене или продуже софтверске артефакте.
Артефакти дефинисани крајњим корисником могу бити објекти који описују нека аутоматизована понашања или контролну секвенцу, као што су захтеви базе података или граматичка правила,[7] која се може описати са програмским парадигмама као што је демонстрација програмирања, програмирање са примерима, визуелно програмирање, или макро генерације.[8] Они такође могу бити параметри који се определе између алтернативних дефинисаних понашања апликације.[9] Остали предмети развоја крајњих корисника такође могу да се односе на стварање корисничког генерисаног садржаја као што напомена, које могу бити не рачунски интерпретиране (тј могу се обрадити у вези аутоматске функције).[10]
Примери
[уреди | уреди извор]Примери развоја крајњег корисника укључују стварање и модификацију:
- 3D модели креирани са крајњих корисничких оријентисаних алата и приступа, као што је Sketchup
- Анимационе скрипте које користе графичара да опишу ликове, окружење и како се ликови крећу и произведе намераване анимацију
- Конфигурацијаске датотеке које замагљују границу између програма и података (нпр, е-маил филтери су поређане листе критерија и радњи долажења)
- Пример-центрираног програмирања алата[11]
- Наводно, доприноси да се отвори код пројеката у којима корисници софтверског пакета уносе своју шифру за укључивање у главни пакет - у неким случајевима, крајњи корисници учествују као пуноправни програмери
- Модификације игре да се уведу сопствени ликови корисника, окружења, итд - многе недавне игре су распоређене са модификацијом на уму
- Интеракција скрипти за коришћење у ЦРМ позивним центрима
- Процес модели који се користе у процесу рада апликација
- Прототипови и програми специфичних домена написаних од пословних људи, инжењера, научника да се покажу или тестирају специфичне теорије
- Научни модели који се користе у рачунарској симулацији
- Скрипте и макрои се додају да би се продужиле или аутоматизовале канцеларије продуктивности апартмана и графичке апликације.
- Симулације креиране помоћу дефиниције апликативног софтвера
- Истовремено уређивање од многих сличних предмета или кроз серијске процесе одређене од стране крајњег корисника или непосредном манипулацијом, попут оних на располагању у едитору Лапис текста и више измена.
- Модели табела, нпр, који се користе за буџетирање, анализа ризика, или интерактивног учења машине[12]
- Визуелно програмирање у виду визуелних језика, као што су AgentSheets, LabVIEW, Скрач (програмски језик) или LEGO Mindstorms.
- Крајњи кориснички алатки за развој мобилних уређаја као што је Апп Инвентор
- Веб странице - обичан HTML или HTML и скриптирање
- Викији - процес заједничког крајњег корисничког развоја
- Веб Mashups у виду визуелних језика, као што је Yahoo! Pipes.[13]
- Визуелни системи упита као што је OptiqueVQS.[14]
Трошак-бенефит моделирање развоја крајњег корисника
[уреди | уреди извор]Према Sutcliffe-у,[15] ККР суштински ангажује развој напора до крајњег корисника. Јер, увек постоји неки напор да се науче ККР функције, мотивација корисника зависи од њиховог поверења да ће оснажити њихов рад, уштедели време на послу или подизању продуктивности. У овом моделу, користи за кориснике су првобитно засновани на маркетингу, демонстрације и реч-од-уста. Када се технологија ставља у употребу, искуство стварних бенефиција постаје кључни мотив.
Ова студија дефинише трошкове као збир:
- Техничка цена: цена технологије и напор да га инсталирате
- Учење цена: време потребно да се разумеју технологију
- Трошкови развоја: настојање за развој апликација помоћу технологије
- Тестирање и отклањање грешака цена: време потребно да се провери систем
Први и други трошкови настају једном приликом набавке, док трећи и четврти настају сваки пут када се апликација развија. Предности (које могу бити субјективне или стварне) се сматрају:
- Функционалност испоручује технологије
- Флексибилност да одговори на нове захтеве
- Употребљивост апликацијских производа
- Генерално квалитет произведених апликација
Замерка
[уреди | уреди извор]Коментатори су забринути да крајњи корисници не разумеју како да тестирају и обезбеде њихову примену. Варрен Харрисон, професор рачунарских наука на Портланд Стате Универзитету, је написао:[16]
То је једноставно недокучиво да очекујемо безбедност ... од огромне већине софтверских апликација тамо када су писани са мало, ако га има, знања опште прихваћане добре праксе, као што се наводи пре кодирања, систематског испитивања, и тако даље. ... Колико X за комплетне идиоте (где је "X" ваш омиљени програмски језик) књиге су тамо? У почетку сам се забављао овим трендом, али недавно сам постао забринут размишљањем где овај dabblers примењује своје новостечено знање.
Ово гледиште претпоставља да сви крајњи корисници су подједнако наивни када је у питању разумевање софтвера, иако Pliskin and Shoval тврде да то није случај, да софистицирани крајњи корисници су способни за развој крајњег корисника.[17]
Као одговор на то, појавило се проучавање крајњег корисника софтверског инжењеринга. Бави се питањима изван развој крајњег корисника, при чему крајњи корисници постају мотивисани да размотре питања као што су употребљивост, безбедност и могућности за верификацију када развијају своје рјешења.[18]
Алтернативни сценарио је да крајњи корисници и њихови саветници користе декларативне алате који подржавају ригорозна пословна и безбедносна правила на уштрб перформанси и скалабилности; алати креирани помоћу ККР ће обично имати лошију ефикасност од оних направљених са професионалним програмским окружењима. Иако одвајање функционалност од ефикасности је валидно раздвајање проблема, то може довести до ситуације у којој ће крајњи корисници заврши и документовати анализу потреба и израду прототипова алата, без укључивања пословних аналитичара. Дакле, корисници ће дефинисати функције потребне пре него што ови стручњаци имају прилику да размотре ограничења одређене апликације или софтверских оквира. Виша подршка менаџмента за такве иницијативе крајњег корисника зависе од њиховог односа са постојећим или потенцијалним продавцима брава.
Види још
[уреди | уреди извор]- Крајње корисничко рачунарство
- Ситуације апликација
- Софтверско инжењерство
- Природни језик програмирања
Референце
[уреди | уреди извор]- ^ Burnett, Margaret M. and Christopher Scaffidi. End-User Development. Interaction-Design.org. at "Encyclopedia of Human-Computer Interaction".
- ^ Hornsby, Peter (3. 8. 2009). „Empowering Users to Create Their Own Software”. UXmatters. Приступљено 31. 1. 2014.
- ^ Abraham, R.; Burnett, M; Erwig, M (2009). „Spreadsheet programming”. Wiley Encyclopedia of Computer Science and Engineering. стр. 1—10.
- ^ Kruck, S. & Sheetz, S., 2001. Spreadsheet accuracy theory. Journal of Information Systems Education.
- ^ Scaffidi, C., Shaw, M. & Myers, B., 2005. Estimating the Numbers of End Users and End User Programmers. 2005 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC’05). стр. 207–214.
- ^ Lieberman, H., Paternò, F., Klann, M., and Wulf, V. (2006). End-User Development: An Emerging Paradigm. In: End-User Development, Lieberman, H., Paternò, F., and Wulf, V. (eds.), Springer Netherlands, 2006, ser. Human-Computer Interaction Series, vol. 9, Chapter 1. стр. 1-7, Lieberman, Henry; Paternò, Fabio; Klann, Markus; Wulf, Volker (2006). „End-User Development: An Emerging Paradigm”. End User Development. Human-Computer Interaction Series. 9. стр. 1—8. ISBN 978-1-4020-4220-1. S2CID 15559793. doi:10.1007/1-4020-5386-X_1.
- ^ H. Lieberman, B. A. Nardi, and D. Wright. Grammex: Defining grammars by example. In ACM conference on Human Factors in Computing Systems (Summary, Demonstrations) (CHI ’98), Los Angeles, California, USA, pages 11–12. ACM Press, Apr. 1998.
- ^ Maria Francesca Costabile, Daniela Fogli, Piero Mussio, Antonio Piccinno. End-user development: the software shaping workshop approach. In Lieberman, H., Paternò, F., Wulf, V. (Eds) (2004) End User Development - Empowering People to Flexibly Employ Advanced Information and Communication Technology, © 2004 Kluwer Academic Publishers, Dordrecht, The Netherlands.
- ^ Costabile, M.F., Fogli, D., Letondal, C., Mussio, P., Piccinno, A., Domain -Expert Users and their Needs of Software Development", UAHCI Conference, Crete, June 22–27, 2003, 232-236.
- ^ Gerhard Fischer End-User Development and Meta-Design: Foundations for Cultures of Participation. End-User Development Lecture Notes in Computer Science, 2009, Volume 5435/2009, 3-14, Fischer, Gerhard (2009). „End-User Development and Meta-design: Foundations for Cultures of Participation”. End-User Development. Lecture Notes in Computer Science. 5435. стр. 3—14. ISBN 978-3-642-00425-4. doi:10.1007/978-3-642-00427-8_1.
- ^ Scaffidi, Christopher; Brandt, Joel; Burnett, Margaret; Dove, Andrew; Myers, Brad (2012). „SIG: end-user programming”. CHI '12 Extended Abstracts on Human Factors in Computing Systems: 1193—1996. ISBN 9781450310161. S2CID 17748945. doi:10.1145/2212776.2212421.
- ^ Sarkar, Advait; Blackwell, Alan; Jamnik, Mateja; Spott, Martin (2014). „Teach and try: A simple interaction technique for exploratory data modelling by end users”. 2014 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC). стр. 53—56. ISBN 978-1-4799-4035-6. S2CID 14845341. doi:10.1109/VLHCC.2014.6883022.
- ^ Roy Chowdhury, Soudip; Rodriguez, Carlos; Daniel, Florian; Casati, Fabio (2010). Wisdom-aware computing: on the interactive recommendation of composition knowledge. Springer. стр. 144—155. ISBN 9783642193934.
- ^ Soylu, Ahmet; Giese, Martin; Jimenez-Ruiz, Ernesto; Kharlamov, Evgeny; Zheleznyakov, Dmitry; Horrocks, Ian (2013). „OptiqueVQS – Towards an Ontology-based Visual Query System for Big Data” (PDF). Архивирано из оригинала (PDF) 03. 03. 2016. г. Приступљено 10. 01. 2016.
- ^ Sutcliffe, Alistair (2005). „Evaluating the costs and benefits of end-user development” (PDF). ACM SIGSOFT Software Engineering Notes. ACM. 30 (4): 1—4. doi:10.1145/1082983.1083241. Приступљено 29. 5. 2008.
- ^ Harrison, Warren (2004). „The Dangers of End-User Programming” (PDF). IEEE Software. 21 (4): 5. doi:10.1109/MS.2004.13. Приступљено 2. 3. 2009.
- ^ Pliskin, Nava; Shoval, Peretz (1987). „End-user prototyping: sophisticated users supporting system development”. ACM SIGMIS Database. 18 (4): 7—17. S2CID 18183262. doi:10.1145/1017816.1017817. Приступљено 29. 5. 2008.
- ^ „End-User Software Engineering: Empirical Findings”. End Users Shaping Effective Software Consortium. Приступљено 28. 5. 2008.
Литература
[уреди | уреди извор]- Cypher, Allen (1993). Watch what I do: Programming by Demonstration. Daniel C. Halbert. MIT Press. ISBN 978-0-262-03213-1.
- Lieberman, Henry . Your Wish is My Command: Programming By Example. Contributor Ben Shneiderman. Publisher: Morgan Kaufmann. . 2001. ISBN 978-1-55860-688-3 http://web.media.mit.edu/~lieber/PBE/Your-Wish/. Недостаје или је празан параметар
|title=
(помоћ) - Paternò, Fabio (2013). „End User Development: Survey of an Emerging Field for Empowering People”. Isrn Software Engineering. 2013: 1—11. doi:10.1155/2013/532659 .
- B. Guo, D. Zhang, M. Imai (2010). „Enabling User-Oriented Management for Ubiquitous Computing: The Meta-Design Approach”. Computer Networks. 54 (16). .
- Burnett, Margaret M. and Scaffidi, Christopher (2011): End-User Development. In: Soegaard, Mads and Dam, Rikke Friis (eds.). "Encyclopedia of Human-Computer Interaction".
- Kierkegaard, Patrick Kierkegaard, Patrick (2011). "Beefing Up End User Development: Legal Protection and Regulatory Compliance"[мртва веза].
- End-User Development. Lecture Notes in Computer Science. 6654. 2011. ISBN 978-3-642-21529-2. doi:10.1007/978-3-642-21530-8.
Спољашње везе
[уреди | уреди извор]- Second International Symposium on End User Development
- EUSES Consortium, a collaboration that researches end user computing
- The End User Development book Архивирано на сајту Wayback Machine (18. фебруар 2007)
- The European Commission Network of Excellence on End-User Development Архивирано на сајту Wayback Machine (3. март 2016)
- Conference Series International Symposium on End-User Development